﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>MacroExecuteString</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>MacroExecuteString</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">структуры</a> |
<a href="../macroapi/index.html">Macro API</a>
</div>

<div class=shortdescr>
Структура <code>MacroExecuteString</code> используется в функции <a href="../service_functions/macrocontrol.html">MacroControl</a> для передачи исполняемого скрипта в Far Manager.
</div>

<pre class=syntax>
struct MacroExecuteString
{
  size_t StructSize;
  unsigned __int64 Flags;
  const wchar_t *SequenceText;
  size_t InCount;
  struct FarMacroValue *InValues;
  size_t OutCount;
  const struct FarMacroValue *OutValues;
};
</pre>

<h3>Элементы</h3>
<div class=descr>
  <div class=dfn>StructSize</div>
    <div class=dfndescr>Это поле должно содержать размер структуры <code>MacroExecuteString</code>. Перед использованием структуры плагин должен заполнить поле.</div>
  <div class=dfn>Flags</div>
    <div class=dfndescr>Комбинация флагов (тип <code><a name="FARKEYMACROFLAGS">FARKEYMACROFLAGS</a></code>, используются только KMFLAGS_SILENTCHECK, KMFLAGS_LUA и KMFLAGS_MOONSCRIPT):
    <table class="cont">
    <tr class="cont"><th class="cont" width="40%">Флаг</th><th class="cont" width="60%">Описание</th></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_ENABLEOUTPUT">KMFLAGS_ENABLEOUTPUT</a></td>
    <td class="cont" width="60%">Отображать на экране результат работы каждой клавиши.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_NOSENDKEYSTOPLUGINS">KMFLAGS_NOSENDKEYSTOPLUGINS</a></td>
    <td class="cont" width="60%">Не передавать клавиши редакторным плагинам (плагинам, экспортирующим функцию <a href="../exported_functions/processeditorinputw.html">ProcessEditorInputW</a>).</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_SILENTCHECK">KMFLAGS_SILENTCHECK</a></td>
    <td class="cont" width="60%">Не отображать на экране результат проверки макропоследовательности.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_LANGMASK">KMFLAGS_LANGMASK</a></td>
    <td class="cont" width="60%">Трёхбитовая область, в которой задаётся язык макропоследовательности.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_LUA">KMFLAGS_LUA</a></td>
    <td class="cont" width="60%">Язык макропоследовательности - Lua (значение по умолчанию).</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_MOONSCRIPT">KMFLAGS_MOONSCRIPT</a></td>
    <td class="cont" width="60%">Язык макропоследовательности - MoonScript.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="KMFLAGS_NONE">KMFLAGS_NONE</a></td>
    <td class="cont" width="60%">Нулевой флаг.</td></tr>
    </table></div>
  <div class=dfn>SequenceText</div>
    <div class=dfndescr>Скрипт в текстовом виде. Если начинается символом <code>@</code>, то последующая часть интерпретируется как имя файла-скрипта (допустимо использование переменных окружения).</div>
  <div class=dfn>InCount</div>
    <div class=dfndescr>Количество аргументов для передачи скрипту. Если аргументов нет, установите в ноль.</div>
  <div class=dfn>InValues</div>
    <div class=dfndescr>
      Указатель на массив аргументов скрипта.
    </div>
  <div class=dfn>OutCount</div>
    <div class=dfndescr>Количество элементов, возвращённых скриптом (значение устанавливает Far Manager).</div>
  <div class=dfn>OutValues</div>
    <div class=dfndescr>Указатель на массив элементов, возвращённых скриптом (значение устанавливает Far Manager).</div>
</div>

<h3>Замечания</h3>
<div class=descr>
<ol>
<li>Скрипт не должен вызывать функции, перечисленные в статье "Ограничения в
использовании некоторых функций" в macroapi_manual.ru.chm.
<li>Массив <code>OutValues</code> может использоваться плагином только до
следующего вызова функции <code>MacroControl</code>, либо до возвращения
управления Far Manager (более раннее из этих событий). Если предполагается
использовать элементы массива и далее, плагин должен скопировать их в свою
память.
</ol>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="index.html">структуры</a>
</div>

</body>
</html>
